In the area of emergent systems, where different service providers can offer services to a customer who in turn can compose an order combining the different services, structuring and managing interdependencies between these services presents a challenge.
Services are typically categorized into taxonomies, which serve the single purpose of aiding the classification of services. Accordingly, interdependencies between services are hard-coded and therefore static.
Emergent software systems are typically established by and shared by more than one participant. Often one participant establishes the framework and then allows other participants to deploy components into the framework. Participants owning the components deployed to the platform are constantly capable of providing, updating, and deleting their components. Apart from making the system change its behavior unexpectedly, this feature also enables the system to perform tasks, by unexpected combinations of components that were not originally possible or intended by any of the component suppliers. Systems that function in this manner are referred to as “emergent.”
Emergent systems that are designed to execute a process chain that produces certain products typically involve a partner portal, a customer portal, and a steering component. The partner portal allows parties that can fulfill at least one of the steps in an overall process, to publish services to the system. The customer portal displays the aggregated partner offerings to potential customers so that a customer can configure a customized offering by choosing among the options provided by the registered partners for each step. The steering component is connected to both portals and steers the overall process by aggregating partner offerings into the customer portal and delegating customer orders.
One of the problems with current emergent systems that are designed to execute a process chain is that the decisions the customer has to undertake are presented as if they are largely independent of one another and that any interdependency between categories is static.
For example, in the case of a sample process chain for the production of boxes of chocolates there are many separate process steps, including, for example, forming items out of a certain material, covering them with icing, placing decorations on top, covering them in paper, putting them in a box, etc. It may be the case that not all of the materials of a to-be-iced item can endure the temperature that a certain icing requires to be sufficiently liquid. Thus, a customer may end up using a current emergent system portal to order, for example, marzipan chocolates covered with dark chocolate though the overall-process might exclude this case.
Non-emergent systems, that contain service categories and customer choices by hard-coded means, would not have this issue because the interdependencies between the service categories are, indeed, static. However, emergent systems are dynamic with respect to service categories, often influenced by numerous parties. This dynamism often leads to problems and conflicts with respect to the interdependency of service categories.
Another problem occurs with current catalogue-based ordering systems that allow customers to choose from a large catalogue of goods where the customer can select products not only via brand name, but also based on some properties. For example, an electronic component provider catalogue may include a property description, such as “needs 5V power supply.” Current systems may not detect if the customer-selected components are incompatible with one another.
For example, there are different types of plugs to connect systems to one another, and the components selected by the customer might rely on different plugging systems. This incompatibility is not detected by current systems and may not be discovered until the customer tries to assemble the components.
One or more embodiments discussed herein can address these problems by extending emergent behavior to the interdependency handling and detecting/resolving incompatibility issues.